package com.jl.mapper;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jl.model.Component;
import com.jl.model.in.ComponentIn;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 零件表 Mapper 接口
 * </p>
 *
 * @author JiangJian
 * @since 2019-03-06
 */
public interface ComponentMapper extends BaseMapper<Component> {

    /**
     * 查询零件列表
     * 这里的Param中必须使用 ew为名称 这是因为使用了mybatisplus中的内定的参数
     * 且在xml中必须是使用 美元符 $ 来作为占位符
     * @param page
     * @param qw
     * @return
     */
    List<Map<String,Object>> selectDataGrid(Page<Map<String,Object>> page, @Param("ew") QueryWrapper<Component> qw);


    /**
     * 通过设备类型id获取配件信息。下拉选择框一定要以这种格式来写，统一格式
     * @param page 分页参数
     * @param modelId 部位id
     * @return
     */
    List<Map<String,Object>> selectComponentDataGridByModelId(Page<Map<String,Object>> page, @Param("modelId") Long modelId);

    /**
     * 通过部位id获取配件信息 不分页
     * @param modelId 部位id
     * @return
     */
    List<Component> selectComponentByModelId(@Param("modelId") Long modelId);
    /**
     *
     * @param number 零件编号
     * @return 结果数量
     */
    Integer selectComponentNumberCount(@Param("number") String number);

    /**
     * component的部分属性,用于判断编号是否可用
     * @param number
     * @return
     */
    ComponentIn selectComponentInByNumber(@Param("number") String number);

    /**
     * component的部分属性
     * @param name
     * @return
     */
    ComponentIn selectComponentInByName(@Param("name") String name);

    /**
     *
     * @param name 配件名称
     * @return 结果数量
     */
    Integer selectComponentNameCount(@Param("name") String name);

    /**
     * 根据id列表查询配件信息
     * @param ids
     * @return
     */
    List<Component> selectComponentByIds(@Param("ids") List<Long> ids);

}
